package com.punai.standard.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.punai.standard.domain.StaLinkGxfeeCategory;
import com.punai.standard.domain.bo.CJCategoryBo;
import com.punai.standard.domain.bo.CJCategoryFbBo;
import com.punai.standard.domain.template.StaGxLinkGkCategoriesExcel;
import com.punai.standard.domain.template.StaLinkGxfeeCategoryExcel;
import com.punai.standard.domain.vo.ExpenseCategoriesVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 工序分包费用项 关联 材机分类Mapper接口
 *
 * @author zxw
 * @date 2022-12-13
 */
public interface StaLinkGxfeeCategoryMapper extends BaseMapper<StaLinkGxfeeCategory>
{
    /**
     * 查询工序分包费用项 关联 材机分类
     *
     * @param id 工序分包费用项 关联 材机分类主键
     * @return 工序分包费用项 关联 材机分类
     */
    public StaLinkGxfeeCategory selectStaLinkGxfeeCategoryById(String id);

    /**
     * 查询工序分包费用项 关联 材机分类列表
     *
     * @param staLinkGxfeeCategory 工序分包费用项 关联 材机分类
     * @return 工序分包费用项 关联 材机分类集合
     */
    public List<StaLinkGxfeeCategory> selectStaLinkGxfeeCategoryList(StaLinkGxfeeCategory staLinkGxfeeCategory);

    List<StaLinkGxfeeCategoryExcel> selectExport(@Param("versionId") String versionId, @Param("gxIds") List<String> gxIds);

    public List<StaGxLinkGkCategoriesExcel> selectByGxIds(@Param("versionId") String versionId, @Param("gxIds") List<String> gxIds);


    /**
     * 删除工序分包费用项 关联 材机分类
     *
     * @param id 工序分包费用项 关联 材机分类主键
     * @return 结果
     */
    public int deleteStaLinkGxfeeCategoryById(String id);

    /**
     * 批量删除工序分包费用项 关联 材机分类
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStaLinkGxfeeCategoryByIds(String[] ids);

    List<CJCategoryBo> selectCategoryBo(@Param("gxIds") List<String> gxIds,@Param("versionId") String versionId, @Param("companyId")Long companyId);

    List<CJCategoryFbBo> selectCategoryFbBo(@Param("gxIds") List<String> gxIds, @Param("versionId") String versionId, @Param("companyId")Long companyId);

    List<Map<String, String>> selectSimplifyMsgByVersionId(@Param("versionId") String versionId);

    public List<ExpenseCategoriesVo> selectCjList(@Param("companyId") Long companyId);

}
